<?php

class Admin_Form_Menu_Menu extends Zend_Form {

    public function init() {
        $this->setAction('')
                ->setMethod('post');

        // Create and configure username element:
        $parent = $this->createElement('select', 'post_parent');
        $parent->setLabel('Danh mục gốc:')
                ->addMultiOptions(array(0 => 'Danh mục gốc'));

        // Create and configure password element:
        $name_menu = $this->createElement('text', 'post_title');
        $name_menu->addValidator('StringLength', false, array(1, 40))
                ->setRequired(true)
                ->addFilter('StripTags')
                ->addFilter('StringTrim')
                ->setAttrib('size', 50)
                ->addValidator('NotEmpty')
                ->setLabel('Tên danh mục');

        $description = $this->createElement('textarea', 'post_content', array('label' => 'Giới thiệu:', 'rows' => '10', 'cols' => '70'));
        $description->setRequired(true)
                ->addFilter('StripTags')
                ->addFilter('StringTrim');

        $logo = $this->createElement('file', 'partner_logo');
        $logo->setLabel('Logo:');
        $logo->addValidator('FilesSize', false, array('min' => 1, 'max' => 200000,
                    'bytestring' => true, 'messages' => array(
                        'fileFilesSizeTooBig' => 'Kích thước file %value% là %size% byte vượt quá %max% byte',
                        'fileFilesSizeTooSmall' => 'Kích thước file %value% là %size% byte cần lớn hơn %min% byte',
                        'fileFilesSizeNotReadable' => 'Không đọc được file cần upload')))
                ->addValidator('ImageSize', false, array('minwidth' => 10, 'maxwidth' => 2000,
                    'minheight' => 10, 'maxheight' => 2000,
                    'messages' => array('fileImageSizeWidthTooBig' => 'Chiều rộng ảnh phải trong khoảng %minwidth%..%maxwidth% pixel. Hiện là: %width% pixel.',
                        'fileImageSizeWidthTooSmall' => 'Chiều rộng ảnh phải trong khoảng %minwidth%..%maxwidth% pixel. Hiện là: %width% pixel.',
                        'fileImageSizeHeightTooBig' => 'Chiều cao ảnh phải trong khoảng %minheight%..%maxheight% pixel. Hiện là: %height% pixel.',
                        'fileImageSizeHeightTooSmall' => 'Chiều cao ảnh phải trong khoảng %minheight%..%maxheight% pixel. Hiện là: %height% pixel.',
                        'fileImageSizeNotDetected' => 'Không kiểm tra được kích thước ảnh',
                        'fileImageSizeNotReadable' => 'Không đọc được file được upload')))
                ->addValidator('Extension', false, 'jpg,png,gif');

        $order = $this->createElement('text', 'post_order');
        $order->setLabel('Số thứ tự:')
                ->setRequired(true)
                ->addFilter('StripTags')
                ->addFilter('StringTrim')
                ->addFilter('Int')
                ->setAttrib('size', 10)
                ->addValidator('NotEmpty');

        $status = $this->createElement('checkbox', 'post_status', array('label' => 'Sử dụng:', 'checkedValue' => 1, 'uncheckedValue' => 0));
        $status->setValue(1);

        $submit = $this->createElement('submit', 'submit');
        $submit->setAttrib('id', 'submit');
        $submit->setLabel('Submit');
        $submit->setAttrib('class', 'formbutton');
        $submit->setDecorators(array('ViewHelper', array('HtmlTag', array('tag' => 'hb'), array('Label', array('tag' => '')))));
        $reset = $this->createElement('reset', 'reset', array('label' => 'Làm lại'));
        $reset->setDecorators(array('ViewHelper', array('HtmlTag', array('tag' => 'hb'), array('Label', array('tag' => '')))));
        $reset->setAttrib('class', 'formbutton');
        $cancel = $this->createElement('button', 'back', array('label' => 'Quay lại'));
        $cancel->setDecorators(array('ViewHelper', array('HtmlTag', array('tag' => 'hb'), array('Label', array('tag' => '')))));
        $cancel->setAttrib('class', 'formbutton');
        // Add elements to form:
        $this->addElement($parent)
                ->addElement($name_menu)
                ->addElement($description)
                ->addElement($logo)
                ->addElement($order)
                ->addElement($status)
                ->addElement($submit)
                ->addElement($reset)
                ->addElement($cancel);
    }

}